package cn.jobstart.es.model;

import lombok.Data;
import org.dromara.easyes.annotation.IndexField;
import org.dromara.easyes.annotation.IndexId;
import org.dromara.easyes.annotation.IndexName;
import org.dromara.easyes.annotation.Score;
import org.dromara.easyes.annotation.rely.Analyzer;
import org.dromara.easyes.annotation.rely.FieldType;
import org.dromara.easyes.annotation.rely.IdType;
import org.hibernate.validator.constraints.Length;

import java.math.BigDecimal;
import java.util.Date;


/**
 * @author sunke
 * @version 1.0
 * @Description 简历
 * @date 2023-09-06 16:19
 */


@Data
@IndexName(value = "resume", shardsNum = 3, replicasNum = 1)
public class ResumeEs extends AbstractEsModel {


    @IndexField(fieldType = FieldType.KEYWORD)
    private String talentSubscriptionTaskId;
    @Score
    private float score;
    @IndexId(type = IdType.CUSTOMIZE)
    private String id;
    @IndexField(fieldType = FieldType.KEYWORD)
    private String personId;
    /**
     * 来源
     */
    @IndexField(fieldType = FieldType.INTEGER)
    private Integer source;
    /**
     * 简历名称
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String title;
    /**
     * qq
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String qq;
    /**
     * 婚姻状况
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String marriage;
    /**
     * 婚姻状况 0保密  1未婚 2已婚
     * 0:保密:secret,1:未婚:un_married,2:已婚:married
     */
    @IndexField(fieldType = FieldType.INTEGER)
    private Integer marriageFlag;
    /**
     * 开始工作年限
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String firstWork;
    /**
     * 出生地
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String birthPlace;
    /**
     * 真实姓名
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String truename;
    /**
     * 求职意向
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String expectWork;
    /**
     * 性别
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String sex;
    /**
     * 性别 0 保密 1 男 2女
     * 0:保密:secret,1:男:male,2:女:female
     */
    @IndexField(fieldType = FieldType.INTEGER)
    private Integer sexFlag;
    /**
     * 出生日期
     */
    @IndexField(fieldType = FieldType.DATE, dateFormat = "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis")
    private Date birthday;
    /**
     * 民族
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String nation;
    /**
     * 籍贯
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String expectcity;
    /**
     * 居住地
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String livePlace;
    /**
     * 政治面貌
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String politics;
    /**
     * 政治面貌
     * 0:群众:the_masses,1:党员:party_member,2:预备党员:probationary_party_member,3:团长:league_member,4:其它:other
     */
    @IndexField(fieldType = FieldType.INTEGER)
    private Integer politicsFlag;
    /**
     * 邮箱
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String email;
    /**
     * 手机号
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String mobile;
    /**
     * 年龄
     */
    @IndexField(fieldType = FieldType.INTEGER)
    private Integer age;
    /**
     * 求职城市
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String exceptCity;
    /**
     * 求职意向
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String category;
    /**
     * 求职意向id
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String categoryId;
    /**
     * 期望职位
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String exceptWork;
    /**
     * (数据来源)简历创建时间
     */
    @IndexField(fieldType = FieldType.DATE, dateFormat = "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis")
    private Date resumeCreateTime;
    /**
     * 完整度
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String integrity;

    /**
     * 简历更新时间
     */
    @IndexField(fieldType = FieldType.DATE, dateFormat = "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis")
    private Date resumeModifyTime;
    /**
     * 期望行业
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String parentCategory;
    /**
     * 期望行业id
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String parentCategoryId;
    /**
     * 期望职位二级类型
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String secondCategory;
    /**
     * 期望职位二级类型id
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String secondCategoryId;
    /**
     * 工作经验
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String jobYear;
    @IndexField(fieldType = FieldType.INTEGER)
    private Integer workExperienceFlag;


    // @ApiModelProperty(value = "工作经验 0:不限:unlimit,1:1年以内:one_down,2:1-3年:one_three,3:3-5年:three_five,4: 5-10年:five_ten,5:10年以上:ten_up")
    /**
     * 学历
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String education;
    @IndexField(fieldType = FieldType.INTEGER)
    private Integer educationFlag;
    /**
     * 身高体重
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String height;
    /**
     * 当前薪资
     */
    @IndexField
    private BigDecimal currentSalary;
    /**
     * 期望薪资
     */
    @IndexField
    private BigDecimal expectedSalary;
    /**
     * 学校
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String school;

    @IndexField(fieldType = FieldType.KEYWORD)
    private String schoolLabel;


    /**
     * 专业
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String speciality;
    /**
     * 一句话总结
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String summary;
    /**
     * 其它信息
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String otherInfo;
    /**
     * 在校经历
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String associationActivity;
    /**
     * 能力标签
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String capabilityLabel;
    /**
     * 证书
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String certificate;
    /**
     * 教育经历
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String educationalExperience;
    /**
     * 求职意向
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String employmentIntention;
    /**
     * 实习经历
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String internship;
    /**
     * 专业技能
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String professionalSkills;
    /**
     * 项目经历
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String projectExperience;
    /**
     * 培训经历
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String trainingExperience;
    /**
     * 工作经历
     */
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_MAX_WORD, searchAnalyzer = Analyzer.IK_SMART)
    private String workExperience;


    /**
     * 身份证
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String idcard;




    /**
     * 第三方求职者id
     */
    @IndexField(fieldType = FieldType.KEYWORD)
    private String thirdAccountId;


}
